package CapaNegocio;

import CapaDTO.Tab_Paciente;
import CapaConexion.Conexion;
import CapaDTO.AM_PRESUDET;
import CapaDTO.CerrarMes;
import CapaDTO.GEN_PROFESIONAL;
import CapaDTO.Pago;
import CapaDTO.Sucursales;
import CapaDTO.TablaOracle;
import CapaDTO.Usuarios;
import Config.Sucursal;
import Config.config;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Negocio {

    private Conexion cnn;

    public void configurarConexion() {
        cnn = new Conexion();
        try {
            config cf = new config();

            this.cnn.setDriver(cf.getDriverOracle());
            this.cnn.setNombreBaseDatos(cf.getbDOracle());
            this.cnn.setUser(cf.getUsuario());
            this.cnn.setPassword(cf.getContraseña());
        } catch (IOException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    private void configurarConexionAccess() {
        cnn = new Conexion();
        try {
            config cf = new config();

            this.cnn.setDriver(cf.getDriver());
            this.cnn.setNombreBaseDatos(cf.getBD());

        } catch (IOException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

//    public ArrayList getListarPagoId_doctor(int Id_doc) throws IOException {
//        ArrayList listaAcademicos = new ArrayList();
//        this.configurarConexionAccess();
//        Sucursal su = new Sucursal();
//        this.cnn.setSentenciaSQL(" Select * from pago where doc_id=" + Id_doc + " AND COD_SUCURSAL=" + su.getSucursal());
//        this.cnn.setEsSelect(true);
//        this.cnn.conectar();
//        try {
//            //Rutina para Accesar los datos de la Tabla, con el ResultSet
//            while (this.cnn.getRst().next()) {
//                Pago pag = new Pago();
//
//                pag.setPd_id(this.cnn.getRst().getInt("pd_id"));
//                pag.setNumero_presupuesto(this.cnn.getRst().getInt("Numero_presupuesto"));
//                pag.setDoc_rut(this.cnn.getRst().getString("Doc_rut"));
//                pag.setPaciente_rut(this.cnn.getRst().getString("Paciente_rut"));
//                pag.setPag_num_boleta(this.cnn.getRst().getInt("Pag_num_boleta"));
//                pag.setLiquidacion(this.cnn.getRst().getInt("Liquidacion"));
//                pag.setLaboratorio(this.cnn.getRst().getInt("Laboratorio"));
//                pag.setBono(this.cnn.getRst().getInt("bono"));
//                pag.setRayosDarsalud(this.cnn.getRst().getInt("rayosD"));
//                pag.setFecha(this.cnn.getRst().getString("fecha"));
//                pag.setGuardadoEl(this.cnn.getRst().getString("guardadoEl"));
//                pag.setDetalle(this.cnn.getRst().getString("Detalle"));
//                pag.setCOD_SUCURSAL(this.cnn.getRst().getString("COD_SUCURSAL"));
//                pag.setIngresoPor(this.cnn.getRst().getString("IngresoPor"));
//
//                //Agregar Academico a la Coleccion
//                listaAcademicos.add(pag);
//            }
//        } catch (SQLException ex) {
//            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
//        }
//        //Cerrar la Conexion
//        this.cnn.cerrarConexion();
//        return listaAcademicos;
//    }
//    public String getBuscarOdontologoRut(String rut_prof) {
//        String nombreRut = "n(r-d)";
//        this.configurarConexion();
//
//        this.cnn.setSentenciaSQL(" SELECT "
//                + "APEPAT_PROF ||' '|| APEMAT_PROF ||' '|| NOMBRE1_PROF ||' '|| NOMBRE2_PROF || '(' || rut_prof || '-' || DV_PROF || ')'"
//                + " as nombre "
//                + " FROM  GEN_PROFESIONAL  "
//                + " where "
//                + " rut_prof=" + rut_prof);
//        this.cnn.setEsSelect(true);
//        this.cnn.conectar();
//        try {
//            //Rutina para Accesar los datos de la Tabla, con el ResultSet
//            while (this.cnn.getRst().next()) {
//
//                nombreRut = (this.cnn.getRst().getString("nombre"));
//
//            }
//        } catch (SQLException ex) {
//            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
//        }
//        //Cerrar la Conexion
//        this.cnn.cerrarConexion();
//        return nombreRut;
//    }
//    public ArrayList getBuscarPagoDoctor(int Doc_rut) throws IOException {
//        ArrayList listaAcademicos = new ArrayList();
//        this.configurarConexionAccess();
//        Sucursal su = new Sucursal();
//        this.cnn.setSentenciaSQL(" Select * from pago WHERE doc_rut=" + Doc_rut + " AND COD_SUCURSAL=" + su.getSucursal());
//
//        this.cnn.setEsSelect(true);
//        this.cnn.conectar();
//        try {
//            //Rutina para Accesar los datos de la Tabla, con el ResultSet
//            while (this.cnn.getRst().next()) {
//                Pago pag = new Pago();
//
//                pag.setPd_id(this.cnn.getRst().getInt("pd_id"));
//                pag.setNumero_presupuesto(this.cnn.getRst().getInt("Numero_presupuesto"));
//                pag.setDoc_rut(this.cnn.getRst().getString("Doc_rut"));
//                pag.setPaciente_rut(this.cnn.getRst().getString("Paciente_rut"));
//                pag.setPag_num_boleta(this.cnn.getRst().getInt("Pag_num_boleta"));
//                pag.setLiquidacion(this.cnn.getRst().getInt("Liquidacion"));
//                pag.setLaboratorio(this.cnn.getRst().getInt("Laboratorio"));
//                pag.setBono(this.cnn.getRst().getInt("bono"));
//                pag.setRayosDarsalud(this.cnn.getRst().getInt("rayosD"));
//                pag.setFecha(this.cnn.getRst().getString("fecha"));
//                pag.setGuardadoEl(this.cnn.getRst().getString("guardadoEl"));
//                pag.setDetalle(this.cnn.getRst().getString("Detalle"));
//                pag.setCOD_SUCURSAL(this.cnn.getRst().getString("COD_SUCURSAL"));
//                pag.setIngresoPor(this.cnn.getRst().getString("IngresoPor"));
//                //Agregar Academico a la Coleccion
//                listaAcademicos.add(pag);
//            }
//        } catch (SQLException ex) {
//            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
//        }
//        //Cerrar la Conexion
//        this.cnn.cerrarConexion();
//        return listaAcademicos;
//    }
//    public ArrayList getBuscarPagoPaciente(int Pac_id) throws IOException {
//        ArrayList listaAcademicos = new ArrayList();
//        this.configurarConexionAccess();
//        Sucursal su = new Sucursal();
//        this.cnn.setSentenciaSQL("Select * from pago  WHERE doc_id=" + Pac_id + " AND COD_SUCURSAL=" + su.getSucursal());
//
//        this.cnn.setEsSelect(true);
//        this.cnn.conectar();
//        try {
//            //Rutina para Accesar los datos de la Tabla, con el ResultSet
//            while (this.cnn.getRst().next()) {
//                Pago pag = new Pago();
//
//                pag.setPd_id(this.cnn.getRst().getInt("pd_id"));
//                pag.setNumero_presupuesto(this.cnn.getRst().getInt("Numero_presupuesto"));
//                pag.setDoc_rut(this.cnn.getRst().getString("Doc_rut"));
//                pag.setPaciente_rut(this.cnn.getRst().getString("Paciente_rut"));
//                pag.setPag_num_boleta(this.cnn.getRst().getInt("Pag_num_boleta"));
//                pag.setLiquidacion(this.cnn.getRst().getInt("Liquidacion"));
//                pag.setLaboratorio(this.cnn.getRst().getInt("Laboratorio"));
//                pag.setBono(this.cnn.getRst().getInt("bono"));
//                pag.setRayosDarsalud(this.cnn.getRst().getInt("rayosD"));
//                pag.setFecha(this.cnn.getRst().getString("fecha"));
//                pag.setGuardadoEl(this.cnn.getRst().getString("guardadoEl"));
//                pag.setDetalle(this.cnn.getRst().getString("Detalle"));
//                pag.setCOD_SUCURSAL(this.cnn.getRst().getString("COD_SUCURSAL"));
//                pag.setIngresoPor(this.cnn.getRst().getString("IngresoPor"));
//
//                //Agregar Academico a la Coleccion
//                listaAcademicos.add(pag);
//            }
//        } catch (SQLException ex) {
//            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
//        }
//        //Cerrar la Conexion
//        this.cnn.cerrarConexion();
//        return listaAcademicos;
//    }
//    public int getBuscarAbono(int NUMERO_PRESUDET) throws IOException {
//        int abono = 0;
//        this.configurarConexion();
//        this.cnn.setSentenciaSQL("SELECT sum(abono_presabono) FROM  AM_PRESUDET a ,AM_PRESABONOS b "
//                + "where (a.pago_presudet='A' and "
//                + " a.NUM_PRESUPUESTO=" + NUMERO_PRESUDET + ") and (b.numitem_presudet=a.numitem_presudet and "
//                + " b.NUM_PRESUPUESTO=" + NUMERO_PRESUDET + ")");
//
//        this.cnn.setEsSelect(true);
//        this.cnn.conectar();
//        try {
//            //Rutina para Accesar los datos de la Tabla, con el ResultSet
//            while (this.cnn.getRst().next()) {
//
//                abono = (this.cnn.getRst().getInt("sum(abono_presabono)"));
//
//            }
//        } catch (SQLException ex) {
//            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
//        }
//        //Cerrar la Conexion
//        this.cnn.cerrarConexion();
//        return abono;
//    }
//    public ArrayList getListarTodosPago() {
//        ArrayList listaAcademicos = new ArrayList();
//        this.configurarConexionAccess();
//        this.cnn.setSentenciaSQL(" Select * from pago");
//        this.cnn.setEsSelect(true);
//        this.cnn.conectar();
//        try {
//            //Rutina para Accesar los datos de la Tabla, con el ResultSet
//            while (this.cnn.getRst().next()) {
//                Pago pag = new Pago();
//
//                pag.setPd_id(this.cnn.getRst().getInt("pd_id"));
//                pag.setNumero_presupuesto(this.cnn.getRst().getInt("Numero_presupuesto"));
//                pag.setDoc_rut(this.cnn.getRst().getString("Doc_rut"));
//                pag.setPaciente_rut(this.cnn.getRst().getString("Paciente_rut"));
//                pag.setPag_num_boleta(this.cnn.getRst().getInt("Pag_num_boleta"));
//                pag.setLiquidacion(this.cnn.getRst().getInt("Liquidacion"));
//                pag.setLaboratorio(this.cnn.getRst().getInt("Laboratorio"));
//                pag.setBono(this.cnn.getRst().getInt("bono"));
//                pag.setRayosDarsalud(this.cnn.getRst().getInt("rayosD"));
//                pag.setFecha(this.cnn.getRst().getString("fecha"));
//                pag.setGuardadoEl(this.cnn.getRst().getString("guardadoEl"));
//                pag.setDetalle(this.cnn.getRst().getString("Detalle"));
//                pag.setCOD_SUCURSAL(this.cnn.getRst().getString("COD_SUCURSAL"));
//                pag.setIngresoPor(this.cnn.getRst().getString("IngresoPor"));
//
//                //Agregar Academico a la Coleccion
//                listaAcademicos.add(pag);
//            }
//        } catch (SQLException ex) {
//            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
//        }
//        //Cerrar la Conexion
//        this.cnn.cerrarConexion();
//        return listaAcademicos;
//    }
//    public String getBuscarUser(String user) {
//        String passnueva = "darsalud";
//        this.configurarConexion();
//
//        this.cnn.setSentenciaSQL(" SELECT PASSWORD FROM ACC_USUARIOS where id_usuario like '" + user + "'");
//        this.cnn.setEsSelect(true);
//        this.cnn.conectar();
//        try {
//            //Rutina para Accesar los datos de la Tabla, con el ResultSet
//            while (this.cnn.getRst().next()) {
//
//                passnueva = (this.cnn.getRst().getString("PASSWORD"));
//
//            }
//        } catch (SQLException ex) {
//            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
//        }
//
//        //Cerrar la Conexion
//        this.cnn.cerrarConexion();
//        return passnueva;
//    }
//    public int BuscaBono(int TIPO_PRES, int CODIGO_PRES, int CODADD_PRES, int num_presupuesto) {
//        int bono = 0;
//
//        this.configurarConexion();
//        this.cnn.setSentenciaSQL(" select SUM(ABONO_PRESABONO) as a from AM_PRESABONOS where "
//                + " TIPO_PRES= " + TIPO_PRES
//                + " AND CODIGO_PRES= " + CODIGO_PRES
//                + " AND CODADD_PRES= " + CODADD_PRES
//                + " AND num_presupuesto=" + num_presupuesto);
//        this.cnn.setEsSelect(true);
//        this.cnn.conectar();
//        try {
//            //Rutina para Accesar los datos de la Tabla, con el ResultSet
//            while (this.cnn.getRst().next()) {
//
//                bono = (this.cnn.getRst().getInt("a"));
//
//            }
//        } catch (SQLException ex) {
//            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
//        }
//
//        //Cerrar la Conexion
//        this.cnn.cerrarConexion();
//        return bono;
//    }
//    public int BuscaBonoSinSuma(int TIPO_PRES, int CODIGO_PRES, int CODADD_PRES, int num_presupuesto) {
//        int bono = 0;
//
//        this.configurarConexion();
//        this.cnn.setSentenciaSQL(" select * from AM_PRESABONOS where "
//                + " TIPO_PRES= " + TIPO_PRES
//                + " AND CODIGO_PRES= " + CODIGO_PRES
//                + " AND CODADD_PRES= " + CODADD_PRES
//                + " AND num_presupuesto=" + num_presupuesto);
//        this.cnn.setEsSelect(true);
//        this.cnn.conectar();
//        try {
//            //Rutina para Accesar los datos de la Tabla, con el ResultSet
//            while (this.cnn.getRst().next()) {
//
//                bono = (this.cnn.getRst().getInt("ABONO_PRESABONO"));
//
//            }
//        } catch (SQLException ex) {
//            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
//        }
//
//        //Cerrar la Conexion
//        this.cnn.cerrarConexion();
//        return bono;
//    }
//    public String BuscaPrestacion(int TIPO_PRES, int CODIGO_PRES, int CODADD_PRES, String num_presupuesto) {
//        String bono = "";
//
//        this.configurarConexion();
//        this.cnn.setSentenciaSQL(" select NOMBRE_PRES from AP_PRESTACIONES "
//                + "where "
//                + " Grupo_pres=27 "
//                + " and tipo_pres=" + TIPO_PRES
//                + " and codigo_pres=" + CODIGO_PRES
//                + " and codadd_pres=" + CODADD_PRES);
//        this.cnn.setEsSelect(true);
//        this.cnn.conectar();
//        try {
//            //Rutina para Accesar los datos de la Tabla, con el ResultSet
//            while (this.cnn.getRst().next()) {
//
//                bono = (this.cnn.getRst().getString("NOMBRE_PRES"));
//
//            }
//        } catch (SQLException ex) {
//            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
//        }
//
//        //Cerrar la Conexion
//        this.cnn.cerrarConexion();
//        return bono;
//    }
//    public int getBuscarPagoGerencia(String odontologo, String Fecha, String sucursal) {
//        int sumaPagosMes = 0;
//        this.configurarConexionAccess();
//        this.cnn.setSentenciaSQL(" Select sum(liquidacion)  from pago WHERE doc_rut like '%" + odontologo
//                + "%' and (fecha Between #" + Fecha.substring(0, 7) + "/01# and #" + Fecha + "#) AND COD_SUCURSAL=" + sucursal);
//
//
//        this.cnn.setEsSelect(true);
//        this.cnn.conectar();
//        try {
//            //Rutina para Accesar los datos de la Tabla, con el ResultSet
//            while (this.cnn.getRst().next()) {
//                sumaPagosMes = this.cnn.getRst().getInt("sum(liquidacion)");
//            }
//        } catch (SQLException ex) {
//            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
//        }
//        //Cerrar la Conexion
//        this.cnn.cerrarConexion();
//        return sumaPagosMes;
//    }
//    public ArrayList getBuscarGe(String Fecha, String sucursal) {
//        ArrayList listar = new ArrayList();
//        this.configurarConexionAccess();
//        this.cnn.setSentenciaSQL(" Select COD_SUCURSAL,SUM(Liquidacion) as a,SUM(bono) as b from pago WHERE (fecha Between #" + Fecha.substring(0, 7) + "/01# and #"
//                + Fecha + "#) AND COD_SUCURSAL=" + sucursal + " GROUP BY COD_SUCURSAL");
//        this.cnn.setEsSelect(true);
//        this.cnn.conectar();
//        try {
//            //Rutina para Accesar los datos de la Tabla, con el ResultSet
//            while (this.cnn.getRst().next()) {
//                Pago pag = new Pago();
//
//                pag.setDoc_rut(this.cnn.getRst().getString("COD_SUCURSAL"));
//                pag.setLiquidacion(this.cnn.getRst().getInt("a"));
//                pag.setBono(this.cnn.getRst().getInt("b"));
//
//                listar.add(pag);
//            }
//        } catch (SQLException ex) {
//            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
//        }
//        //Cerrar la Conexion
//        this.cnn.cerrarConexion();
//        return listar;
//    }
    public ArrayList getListarOdontologo() {
        ArrayList listaAcademicos = new ArrayList();
        this.configurarConexion();

        this.cnn.setSentenciaSQL(" SELECT * FROM GEN_PROFESIONAL WHERE COD_PROFESION=2 and VIGENCIA='S' ORDER BY apepat_prof");
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {

                GEN_PROFESIONAL gp = new GEN_PROFESIONAL();
                gp.setRut_prof(this.cnn.getRst().getInt("rut_prof"));
                gp.setDv_prof(this.cnn.getRst().getString("dv_prof"));
                gp.setApepat_prof(this.cnn.getRst().getString("apepat_prof"));
                gp.setApemat_prof(this.cnn.getRst().getString("apemat_prof"));
                gp.setNombre1_prof(this.cnn.getRst().getString("nombre1_prof"));
                gp.setNombre2_prof(this.cnn.getRst().getString("nombre2_prof"));

                //Agregar Academico a la Coleccion
                listaAcademicos.add(gp);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }

        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return listaAcademicos;
    }

    public ArrayList getBuscarOdontologo(int PRESUPUESTO) {
        ArrayList listaAcademicos = new ArrayList();
        this.configurarConexion();

        this.cnn.setSentenciaSQL(" SELECT GEN_PROFESIONAL.APEPAT_PROF,"
                + " GEN_PROFESIONAL.APEMAT_PROF,"
                + " GEN_PROFESIONAL.NOMBRE1_PROF,"
                + " GEN_PROFESIONAL.NOMBRE2_PROF,"
                + " GEN_PROFESIONAL.RUT_PROF, "
                + " GEN_PROFESIONAL.DV_PROF"
                + " FROM "
                + " GEN_PROFESIONAL,AM_PRESUPUESTO  "
                + " where "
                + " GEN_PROFESIONAL.COD_PROF=AM_PRESUPUESTO.COD_PROF "
                + " and "
                + " AM_PRESUPUESTO.NUM_PRESUPUESTO=" + PRESUPUESTO);
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {

                GEN_PROFESIONAL gp = new GEN_PROFESIONAL();

                gp.setRut_prof(this.cnn.getRst().getInt("rut_prof"));
                gp.setDv_prof(this.cnn.getRst().getString("dv_prof"));
                gp.setApepat_prof(this.cnn.getRst().getString("apepat_prof"));
                gp.setApemat_prof(this.cnn.getRst().getString("apemat_prof"));
                gp.setNombre1_prof(this.cnn.getRst().getString("nombre1_prof"));
                gp.setNombre2_prof(this.cnn.getRst().getString("nombre2_prof"));

                //Agregar Academico a la Coleccion
                listaAcademicos.add(gp);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return listaAcademicos;
    }

    public ArrayList getBuscarPaciente(int numero_presudet) {
        ArrayList listaAcademicos = new ArrayList();
        this.configurarConexion();

        this.cnn.setSentenciaSQL(" SELECT NOMBRE_PACIENTE,APEPAT_PACIENTE,APEMAT_PACIENTE,RUT_PACIENTE,DV_PACIENTE,a.ID_AMBULATORIO"
                + " FROM Tab_Paciente A,AM_PRESUPUESTO B WHERE A.ID_AMBULATORIO=B.ID_AMBULATORIO AND B.NUM_PRESUPUESTO=" + numero_presudet);
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {
                Tab_Paciente pac = new Tab_Paciente();

                pac.setID_AMBULATORIO(this.cnn.getRst().getInt("ID_AMBULATORIO"));
                pac.setRUT_PACIENTE(this.cnn.getRst().getInt("RUT_PACIENTE"));
                pac.setDV_PACIENTE(this.cnn.getRst().getString("DV_PACIENTE"));
                pac.setNOMBRE_PACIENTE(this.cnn.getRst().getString("NOMBRE_PACIENTE"));
                pac.setAPEPAT_PACIENTE(this.cnn.getRst().getString("APEPAT_PACIENTE"));
                pac.setAPEMAT_PACIENTE(this.cnn.getRst().getString("APEMAT_PACIENTE"));

                //Agregar Academico a la Coleccion
                listaAcademicos.add(pac);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return listaAcademicos;
    }

    public ArrayList getBuscarPresupuesto(int NUMERO_PRESUDET) {
        //esto ES PARA ORACLE!!!!
        ArrayList listaAcademicos = new ArrayList();
        this.configurarConexion();

        try {
            Sucursal su = new Sucursal();
            this.cnn.setSentenciaSQL(" SELECT SUM(VALOR_PRESUDET) as suma FROM AM_PRESUDET WHERE "
                    + "NUM_PRESUPUESTO=" + NUMERO_PRESUDET + " AND COD_SUCURSAL=" + su.getSucursal());

        } catch (IOException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {
                AM_PRESUDET avd = new AM_PRESUDET();

//                avd.setNUM_PRESUPUESTO(this.cnn.getRst().getInt("NUM_PRESUPUESTO"));
//                avd.setGRUPO_PRES(this.cnn.getRst().getInt("GRUPO_PRES"));
//                avd.setTIPO_PRES(this.cnn.getRst().getInt("TIPO_PRES"));
//                avd.setCODIGO_PRES(this.cnn.getRst().getInt("CODIGO_PRES"));
//                avd.setCODADD_PRES(this.cnn.getRst().getInt("CODADD_PRES"));
//                avd.setCARA_PRESUDET(this.cnn.getRst().getInt("CARA_PRESUDET"));
//                avd.setPIEZA_PRESUDET(this.cnn.getRst().getString("PIEZA_PRESUDET"));
//                avd.setESTADO_PRESUDET(this.cnn.getRst().getString("ESTADO_PRESUDET"));
//                avd.setPAGO_PRESUDET(this.cnn.getRst().getString("PAGO_PRESUDET"));
                avd.setVALOR_PRESUDET(this.cnn.getRst().getInt("suma"));
//                avd.setVIGENCIA_PRESUDET(this.cnn.getRst().getString("VIGENCIA_PRESUDET"));
//                avd.setAFECTO_PRES(this.cnn.getRst().getInt("AFECTO_PRES"));
//                avd.setEXENTO_PRES(this.cnn.getRst().getInt("EXENTO_PRES"));
//                avd.setID_PRIMA_GES(this.cnn.getRst().getString("ID_PRIMA_GES"));

                //Agregar Academico a la Coleccion
                listaAcademicos.add(avd);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return listaAcademicos;
    }

    public ArrayList getBuscarPago(int NUMERO_PRESUDET) throws IOException {
        //ESTO ES PARA ACCESS!!
        ArrayList listaAcademicos = new ArrayList();
        configurarConexionAccess();
        Sucursal su = new Sucursal();
        this.cnn.setSentenciaSQL(" Select * from pago where Numero_presupuesto="
                + NUMERO_PRESUDET + " AND COD_SUCURSAL=" + su.getSucursal());
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {
                Pago pag = new Pago();

                pag.setPd_id(this.cnn.getRst().getInt("pd_id"));
                pag.setNumero_presupuesto(this.cnn.getRst().getInt("Numero_presupuesto"));
                pag.setDoc_rut(this.cnn.getRst().getString("Doc_rut"));
                pag.setPaciente_rut(this.cnn.getRst().getString("Paciente_rut"));
                pag.setPag_num_boleta(this.cnn.getRst().getInt("Pag_num_boleta"));
                pag.setLiquidacion(this.cnn.getRst().getInt("Liquidacion"));
                pag.setLaboratorio(this.cnn.getRst().getInt("Laboratorio"));
                pag.setBono(this.cnn.getRst().getInt("bono"));
                pag.setRayosDarsalud(this.cnn.getRst().getInt("rayosD"));
                pag.setFecha(this.cnn.getRst().getString("fecha"));
                pag.setGuardadoEl(this.cnn.getRst().getString("guardadoEl"));
                pag.setDetalle(this.cnn.getRst().getString("Detalle"));
                pag.setCOD_SUCURSAL(this.cnn.getRst().getString("COD_SUCURSAL"));
                pag.setIngresoPor(this.cnn.getRst().getString("IngresoPor"));
                pag.setValorPrestacion(this.cnn.getRst().getInt("ValorPrestacion"));
                
                //Agregar Academico a la Coleccion
                listaAcademicos.add(pag);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return listaAcademicos;
    }

    public ArrayList getBuscarPagoDoctor(String Doc_rut, String fec) throws IOException {
        ArrayList listaAcademicos = new ArrayList();
        this.configurarConexionAccess();
        Sucursal su = new Sucursal();
        this.cnn.setSentenciaSQL(" Select * from pago WHERE doc_rut like '%" + Doc_rut
                + "%' and (fecha Between #" + fec.substring(0, 7) + "/01# and #" + fec + "#) AND COD_SUCURSAL=" + su.getSucursal() + " order by fecha");
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {
                Pago pag = new Pago();

                pag.setPd_id(this.cnn.getRst().getInt("pd_id"));
                pag.setNumero_presupuesto(this.cnn.getRst().getInt("Numero_presupuesto"));
                pag.setDoc_rut(this.cnn.getRst().getString("Doc_rut"));
                pag.setPaciente_rut(this.cnn.getRst().getString("Paciente_rut"));
                pag.setPag_num_boleta(this.cnn.getRst().getInt("Pag_num_boleta"));
                pag.setLiquidacion(this.cnn.getRst().getInt("Liquidacion"));
                pag.setLaboratorio(this.cnn.getRst().getInt("Laboratorio"));
                pag.setBono(this.cnn.getRst().getInt("bono"));
                pag.setRayosDarsalud(this.cnn.getRst().getInt("rayosD"));
                pag.setFecha(this.cnn.getRst().getString("fecha"));
                pag.setGuardadoEl(this.cnn.getRst().getString("guardadoEl"));
                pag.setDetalle(this.cnn.getRst().getString("Detalle"));
                pag.setCOD_SUCURSAL(this.cnn.getRst().getString("COD_SUCURSAL"));
                pag.setIngresoPor(this.cnn.getRst().getString("IngresoPor"));
                pag.setValorPrestacion(this.cnn.getRst().getInt("ValorPrestacion"));
                //Agregar Academico a la Coleccion
                listaAcademicos.add(pag);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return listaAcademicos;
    }
    public ArrayList buscaBonos(String Doc_rut, String fec) throws IOException {
        ArrayList listaAcademicos = new ArrayList();
        this.configurarConexionAccess();
        Sucursal su = new Sucursal();
        this.cnn.setSentenciaSQL(" Select * from pago WHERE doc_rut like '%" + Doc_rut.trim()
                + "%' and (fecha Between #" + fec.substring(0, 7) + "/01# and #" + fec + "#) AND COD_SUCURSAL=" + su.getSucursal() + " order by fecha");
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {
                Pago pag = new Pago();

                pag.setPd_id(this.cnn.getRst().getInt("pd_id"));
                pag.setNumero_presupuesto(this.cnn.getRst().getInt("Numero_presupuesto"));
                pag.setDoc_rut(this.cnn.getRst().getString("Doc_rut"));
                pag.setPaciente_rut(this.cnn.getRst().getString("Paciente_rut"));
                pag.setPag_num_boleta(this.cnn.getRst().getInt("Pag_num_boleta"));
                pag.setLiquidacion(this.cnn.getRst().getInt("Liquidacion"));
                pag.setLaboratorio(this.cnn.getRst().getInt("Laboratorio"));
                pag.setBono(this.cnn.getRst().getInt("bono"));
                pag.setRayosDarsalud(this.cnn.getRst().getInt("rayosD"));
                pag.setFecha(this.cnn.getRst().getString("fecha"));
                pag.setGuardadoEl(this.cnn.getRst().getString("guardadoEl"));
                pag.setDetalle(this.cnn.getRst().getString("Detalle"));
                pag.setCOD_SUCURSAL(this.cnn.getRst().getString("COD_SUCURSAL"));
                pag.setIngresoPor(this.cnn.getRst().getString("IngresoPor"));
                pag.setValorPrestacion(this.cnn.getRst().getInt("ValorPrestacion"));
                //Agregar Academico a la Coleccion
                listaAcademicos.add(pag);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return listaAcademicos;
    }

    public ArrayList getBuscarPagoDoctorSucursal(int COD_SUCURSAL, String fec) {
        ArrayList listaAcademicos = new ArrayList();
        this.configurarConexionAccess();
        this.cnn.setSentenciaSQL(" Select * from pago WHERE COD_SUCURSAL=" + COD_SUCURSAL
                + " and (fecha Between #" + fec.substring(0, 7) + "/01# and #" + fec + "#) order by Doc_rut ");
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {
                Pago pag = new Pago();

                pag.setPd_id(this.cnn.getRst().getInt("pd_id"));
                pag.setNumero_presupuesto(this.cnn.getRst().getInt("Numero_presupuesto"));
                pag.setDoc_rut(this.cnn.getRst().getString("Doc_rut"));
                pag.setPaciente_rut(this.cnn.getRst().getString("Paciente_rut"));
                pag.setPag_num_boleta(this.cnn.getRst().getInt("Pag_num_boleta"));
                pag.setLiquidacion(this.cnn.getRst().getInt("Liquidacion"));
                pag.setLaboratorio(this.cnn.getRst().getInt("Laboratorio"));
                pag.setRayosDarsalud(this.cnn.getRst().getInt("rayosD"));
                pag.setBono(this.cnn.getRst().getInt("bono"));
                pag.setFecha(this.cnn.getRst().getString("fecha"));
                pag.setGuardadoEl(this.cnn.getRst().getString("guardadoEl"));
                pag.setDetalle(this.cnn.getRst().getString("Detalle"));
                pag.setCOD_SUCURSAL(this.cnn.getRst().getString("COD_SUCURSAL"));
                pag.setIngresoPor(this.cnn.getRst().getString("IngresoPor"));
                pag.setValorPrestacion(this.cnn.getRst().getInt("ValorPrestacion"));
                //Agregar Academico a la Coleccion
                listaAcademicos.add(pag);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return listaAcademicos;
    }

    public ArrayList getBuscarPagoDoctorAÑO(String Doc_rut, String Año) throws IOException {
        ArrayList listaAcademicos = new ArrayList();
        this.configurarConexionAccess();
        Sucursal su = new Sucursal();
        this.cnn.setSentenciaSQL(" Select * from pago WHERE doc_rut like '%" + Doc_rut
                + "%' and (fecha Between #01/01/" + Año + "# and #31/12/" + Año + "#)AND COD_SUCURSAL=" + su.getSucursal() + " order by fecha");

        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {
                Pago pag = new Pago();

                pag.setPd_id(this.cnn.getRst().getInt("pd_id"));
                pag.setNumero_presupuesto(this.cnn.getRst().getInt("Numero_presupuesto"));
                pag.setDoc_rut(this.cnn.getRst().getString("Doc_rut"));
                pag.setPaciente_rut(this.cnn.getRst().getString("Paciente_rut"));
                pag.setPag_num_boleta(this.cnn.getRst().getInt("Pag_num_boleta"));
                pag.setLiquidacion(this.cnn.getRst().getInt("Liquidacion"));
                pag.setLaboratorio(this.cnn.getRst().getInt("Laboratorio"));
                pag.setBono(this.cnn.getRst().getInt("bono"));
                pag.setRayosDarsalud(this.cnn.getRst().getInt("rayosD"));
                pag.setFecha(this.cnn.getRst().getString("fecha"));
                pag.setGuardadoEl(this.cnn.getRst().getString("guardadoEl"));
                pag.setDetalle(this.cnn.getRst().getString("Detalle"));
                pag.setCOD_SUCURSAL(this.cnn.getRst().getString("COD_SUCURSAL"));
                pag.setIngresoPor(this.cnn.getRst().getString("IngresoPor"));
                pag.setValorPrestacion(this.cnn.getRst().getInt("valorprestacion"));
                //Agregar Academico a la Coleccion
                listaAcademicos.add(pag);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return listaAcademicos;
    }

    public ArrayList getBuscarPresuTablaOracle(int NUMERO_PRESUDET) {
        //esto ES PARA ORACLE!!!!
        /*select
        A.numitem_presudet,
        LPAD(A.grupo_pres,2,0)||'-'||LPAD(A.tipo_pres,2,0)||'-'||LPAD(A.CODIGO_PRES,3,0)||'-'||LPAD(A.CODADD_PRES,2,0) as prestacion,
        generales.prestacion (A.COD_EMPRESA,LPAD(A.grupo_pres,2,0)||'-'||LPAD(A.tipo_pres,2,0)||'-'||LPAD(A.CODIGO_PRES,3,0)||'-'||LPAD(A.CODADD_PRES,2,0), 'NOMBRE') nombre,
        NVL(A.CARA_PRESUDET,0) CARA,
        NVL(A.PIEZA_PRESUDET,0)PIEZA,
        NVL(A.VALOR_PRESUDET,0) VALOR,

        NVL((  SELECT sum (B.abono_presabono) FROM AM_PRESABONOS B WHERE
        B.num_presupuesto=A.num_presupuesto AND LPAD(B.grupo_pres,2,0)||'-'||LPAD(B.tipo_pres,2,0)||'-'||LPAD(B.CODIGO_PRES,3,0)||'-'||LPAD(B.CODADD_PRES,2,0)=LPAD(A.grupo_pres,2,0)||'-'||LPAD(A.tipo_pres,2,0)||'-'||LPAD(A.CODIGO_PRES,3,0)||'-'||LPAD(A.CODADD_PRES,2,0)
        AND B.numitem_presudet=A.numitem_presudet  and B.vigencia_presabono='S'
        ),0)  ABONO,

        NVL((A.VALOR_PRESUDET-NVL((  SELECT sum (B.abono_presabono) FROM AM_PRESABONOS B WHERE
        B.num_presupuesto=A.num_presupuesto AND LPAD(B.grupo_pres,2,0)||'-'||LPAD(B.tipo_pres,2,0)||'-'||LPAD(B.CODIGO_PRES,3,0)||'-'||LPAD(B.CODADD_PRES,2,0)=LPAD(A.grupo_pres,2,0)||'-'||LPAD(A.tipo_pres,2,0)||'-'||LPAD(A.CODIGO_PRES,3,0)||'-'||LPAD(A.CODADD_PRES,2,0)
        AND B.numitem_presudet=A.numitem_presudet  and B.vigencia_presabono='S'),0)),0) SALDO,

        NVL(A.ESTADO_PRESUDET,0) as Efectuada,
        NVL(A.PAGO_PRESUDET,0) as pagado

        from
        AM_PRESUDET A
        where
        A.num_presupuesto=48044 and A.cod_empresa=12 and A.cod_sucursal=2 and A.vigencia_PRESUDET='S'
        ORDER BY 1
        
         */
        ArrayList listaAcademicos = new ArrayList();
        this.configurarConexion();

        try {
            Sucursal su = new Sucursal();
            this.cnn.setSentenciaSQL("select "
                    + " A.numitem_presudet ,"
                    + " LPAD(A.grupo_pres,2,0)||'-'||LPAD(A.tipo_pres,2,0)||'-'||LPAD(A.CODIGO_PRES,3,0)||'-'||LPAD(A.CODADD_PRES,2,0) as prestacion, "
                    + " generales.prestacion (A.COD_EMPRESA,LPAD(A.grupo_pres,2,0)||'-'||LPAD(A.tipo_pres,2,0)||'-'||LPAD(A.CODIGO_PRES,3,0)||'-'||LPAD(A.CODADD_PRES,2,0),'NOMBRE') NOMBRE,"
                    + " NVL(A.CARA_PRESUDET,0) CARA,"
                    + " NVL(A.PIEZA_PRESUDET,0)PIEZA,"
                    + " NVL(A.VALOR_PRESUDET,0) VALOR,"
                    + "NVL((  SELECT sum (B.abono_presabono) FROM AM_PRESABONOS B WHERE "
                    + "	B.num_presupuesto=A.num_presupuesto AND LPAD(B.grupo_pres,2,0)||'-'||LPAD(B.tipo_pres,2,0)||'-'||LPAD(B.CODIGO_PRES,3,0)||'-'||LPAD(B.CODADD_PRES,2,0)=LPAD(A.grupo_pres,2,0)||'-'||LPAD(A.tipo_pres,2,0)||'-'||LPAD(A.CODIGO_PRES,3,0)||'-'||LPAD(A.CODADD_PRES,2,0)"
                    + " AND B.numitem_presudet=A.numitem_presudet  and B.vigencia_presabono='S' "
                    + "	),0)  ABONO,"
                    + " NVL((A.VALOR_PRESUDET-NVL(( "
                    + " SELECT sum (B.abono_presabono) FROM AM_PRESABONOS B WHERE "
                    + "	   B.num_presupuesto=A.num_presupuesto AND LPAD(B.grupo_pres,2,0)||'-'||LPAD(B.tipo_pres,2,0)||'-'||LPAD(B.CODIGO_PRES,3,0)||'-'||LPAD(B.CODADD_PRES,2,0)=LPAD(A.grupo_pres,2,0)||'-'||LPAD(A.tipo_pres,2,0)||'-'||LPAD(A.CODIGO_PRES,3,0)||'-'||LPAD(A.CODADD_PRES,2,0)"
                    + "   AND B.numitem_presudet=A.numitem_presudet  and B.vigencia_presabono='S'),0)),0) SALDO,"
                    + "	NVL(A.ESTADO_PRESUDET,0) as Efectuada,"
                    + "	NVL(A.PAGO_PRESUDET,0) as pagado"
                    + "	from "
                    + "	AM_PRESUDET A "
                    + " where "
                    + "	A.num_presupuesto=" + NUMERO_PRESUDET + " and A.cod_empresa=12 and A.cod_sucursal=" + su.getSucursal() + " and A.vigencia_PRESUDET='S' "
                    + "	ORDER BY 1");

        } catch (IOException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {
                TablaOracle ta = new TablaOracle();

                ta.setCODADD_PRES(this.cnn.getRst().getString("prestacion"));
                ta.setNombrePrestacion(this.cnn.getRst().getString("NOMBRE"));
                ta.setCara(this.cnn.getRst().getInt("CARA"));
                ta.setPieza(this.cnn.getRst().getString("PIEZA"));
                ta.setValor(this.cnn.getRst().getInt("VALOR"));
                ta.setAbono(this.cnn.getRst().getInt("ABONO"));
                ta.setSaldo(this.cnn.getRst().getInt("SALDO"));
                ta.setEfectuada(this.cnn.getRst().getString("Efectuada"));
                ta.setPagada(this.cnn.getRst().getString("pagado"));

                //Agregar Academico a la Coleccion
                listaAcademicos.add(ta);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }

        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return listaAcademicos;
    }

    public String getBuscarPacienteAccess(String RUT_PACIENTE) {
        String nombrerut = " ";
        this.configurarConexion();

        this.cnn.setSentenciaSQL(" SELECT "
                + "APEPAT_PACIENTE||' '||APEMAT_PACIENTE||' '||NOMBRE_PACIENTE||'('||RUT_PACIENTE||'-'||DV_PACIENTE||')' "
                + "as nombre"
                + " FROM Tab_Paciente WHERE  "
                + "RUT_PACIENTE=" + RUT_PACIENTE);
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {

                nombrerut = (this.cnn.getRst().getString("nombre"));

            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }

        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return nombrerut;
    }

    public ArrayList Seguridad(String user, String pass) {
        ArrayList listaAcademicos = new ArrayList();
        this.configurarConexionAccess();
        this.cnn.setSentenciaSQL(" SELECT * from usuarios "
                + " where "
                + " usuario='" + user + "' and pass='" + pass + "'");
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {
                Usuarios us = new Usuarios();

                us.setSu_id(this.cnn.getRst().getInt("su_id"));
                us.setUsuario(this.cnn.getRst().getString("Usuario"));
                us.setPass(this.cnn.getRst().getString("pass"));
                us.setCambioSucursal(this.cnn.getRst().getBoolean("cambiosucursal"));
                us.setBonosViaje(this.cnn.getRst().getBoolean("bonosviaje"));
                us.setAdmin(this.cnn.getRst().getBoolean("admin"));
                us.setGuardar(this.cnn.getRst().getBoolean("guardar"));
                us.setVerbono(this.cnn.getRst().getBoolean("verbono"));
                us.setVer(this.cnn.getRst().getBoolean("ver"));
                us.setLiquiMes(this.cnn.getRst().getBoolean("liquiMes"));
                us.setLiquiAño(this.cnn.getRst().getBoolean("liquiAno"));
                us.setLiquiTodos(this.cnn.getRst().getBoolean("liquiTodos"));
                us.setLiquiGerencia(this.cnn.getRst().getBoolean("liquiGerencia"));
                us.setEliminar(this.cnn.getRst().getBoolean("eliminar"));
                us.setEliminarMes(this.cnn.getRst().getBoolean("eliminarMes"));
                us.setCerrarMes(this.cnn.getRst().getBoolean("cerrarmes"));
                us.setApePat(this.cnn.getRst().getString("apePat"));
                us.setApeMat(this.cnn.getRst().getString("apeMat"));
                us.setNombre(this.cnn.getRst().getString("Nombre"));
                us.setCargo(this.cnn.getRst().getString("cargo"));

                us.setEntra(true);
                listaAcademicos.add(us);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return listaAcademicos;
    }

    public ArrayList ListarUser() {
        ArrayList listaAcademicos = new ArrayList();
        this.configurarConexionAccess();
        this.cnn.setSentenciaSQL(" SELECT * from usuarios ");
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {
                Usuarios us = new Usuarios();

                us.setSu_id(this.cnn.getRst().getInt("su_id"));
                us.setUsuario(this.cnn.getRst().getString("Usuario"));
                us.setPass(this.cnn.getRst().getString("pass"));
                us.setCambioSucursal(this.cnn.getRst().getBoolean("cambiosucursal"));
                us.setBonosViaje(this.cnn.getRst().getBoolean("bonosviaje"));
                us.setAdmin(this.cnn.getRst().getBoolean("admin"));
                us.setGuardar(this.cnn.getRst().getBoolean("guardar"));
                us.setVerbono(this.cnn.getRst().getBoolean("verbono"));
                us.setVer(this.cnn.getRst().getBoolean("ver"));
                us.setLiquiMes(this.cnn.getRst().getBoolean("liquiMes"));
                us.setLiquiAño(this.cnn.getRst().getBoolean("liquiAno"));
                us.setLiquiTodos(this.cnn.getRst().getBoolean("liquiTodos"));
                us.setLiquiGerencia(this.cnn.getRst().getBoolean("liquiGerencia"));
                us.setEliminar(this.cnn.getRst().getBoolean("eliminar"));
                us.setEliminarMes(this.cnn.getRst().getBoolean("eliminarMes"));
                us.setCerrarMes(this.cnn.getRst().getBoolean("cerrarmes"));
                us.setEntra(false);
                us.setApePat(this.cnn.getRst().getString("apePat"));
                us.setApeMat(this.cnn.getRst().getString("apeMat"));
                us.setNombre(this.cnn.getRst().getString("Nombre"));
                us.setCargo(this.cnn.getRst().getString("cargo"));
                listaAcademicos.add(us);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return listaAcademicos;
    }

    public ArrayList ListarSucursales() {
        ArrayList listaAcademicos = new ArrayList();
        this.configurarConexionAccess();
        this.cnn.setSentenciaSQL(" SELECT * from Sucursales ");
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {
                Sucursales su = new Sucursales();

                su.setSucursales(this.cnn.getRst().getString("Sucursales"));
                su.setRetencion(this.cnn.getRst().getInt("Retencion"));
                su.setParticipacion(this.cnn.getRst().getInt("Participacion"));

                listaAcademicos.add(su);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return listaAcademicos;
    }

    public ArrayList ListarPrivilegios(String user) {
        ArrayList listaAcademicos = new ArrayList();
        this.configurarConexionAccess();
        this.cnn.setSentenciaSQL(" SELECT * from usuarios where usuario like '" + user + "'");
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {
                Usuarios us = new Usuarios();

                us.setSu_id(this.cnn.getRst().getInt("su_id"));
                us.setUsuario(this.cnn.getRst().getString("Usuario"));
                us.setPass(this.cnn.getRst().getString("pass"));
                us.setCambioSucursal(this.cnn.getRst().getBoolean("cambiosucursal"));
                us.setBonosViaje(this.cnn.getRst().getBoolean("bonosviaje"));
                us.setAdmin(this.cnn.getRst().getBoolean("admin"));
                us.setGuardar(this.cnn.getRst().getBoolean("guardar"));
                us.setVerbono(this.cnn.getRst().getBoolean("verbono"));
                us.setVer(this.cnn.getRst().getBoolean("ver"));
                us.setLiquiMes(this.cnn.getRst().getBoolean("liquiMes"));
                us.setLiquiAño(this.cnn.getRst().getBoolean("liquiAno"));
                us.setLiquiTodos(this.cnn.getRst().getBoolean("liquiTodos"));
                us.setLiquiGerencia(this.cnn.getRst().getBoolean("liquiGerencia"));
                us.setEliminar(this.cnn.getRst().getBoolean("eliminar"));
                us.setEliminarMes(this.cnn.getRst().getBoolean("eliminarMes"));
                us.setCerrarMes(this.cnn.getRst().getBoolean("cerrarmes"));
                us.setApePat(this.cnn.getRst().getString("apePat"));
                us.setApeMat(this.cnn.getRst().getString("apeMat"));
                us.setNombre(this.cnn.getRst().getString("Nombre"));
                us.setCargo(this.cnn.getRst().getString("cargo"));

                us.setEntra(false);
                listaAcademicos.add(us);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return listaAcademicos;
    }

    public ArrayList getListarAbonos(String odontologo, String fec) throws IOException {
        ArrayList listaAcademicos = new ArrayList();
        this.configurarConexionAccess();
        Sucursal su = new Sucursal();
        this.cnn.setSentenciaSQL(" Select * from pago where "
                + " Numero_presupuesto=pag_num_boleta AND "
                + " Doc_rut='" + odontologo + "' AND "
                + " (fecha Between #" + fec.substring(0, 7) + "/01# and #" + fec + "#) AND "
                + " COD_SUCURSAL=" + su.getSucursal());
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {
                Pago pag = new Pago();

                pag.setPd_id(this.cnn.getRst().getInt("pd_id"));
                pag.setNumero_presupuesto(this.cnn.getRst().getInt("Numero_presupuesto"));
                pag.setDoc_rut(this.cnn.getRst().getString("Doc_rut"));
                pag.setPaciente_rut(this.cnn.getRst().getString("Paciente_rut"));
                pag.setPag_num_boleta(this.cnn.getRst().getInt("pag_num_boleta"));
                pag.setLiquidacion(this.cnn.getRst().getInt("Liquidacion"));
                pag.setLaboratorio(this.cnn.getRst().getInt("Laboratorio"));
                pag.setBono(this.cnn.getRst().getInt("bono"));
                pag.setRayosDarsalud(this.cnn.getRst().getInt("rayosD"));
                pag.setFecha(this.cnn.getRst().getString("fecha"));
                pag.setGuardadoEl(this.cnn.getRst().getString("guardadoEl"));
                pag.setDetalle(this.cnn.getRst().getString("Detalle"));
                pag.setCOD_SUCURSAL(this.cnn.getRst().getString("COD_SUCURSAL"));
                pag.setIngresoPor(this.cnn.getRst().getString("IngresoPor"));

                //Agregar Academico a la Coleccion
                listaAcademicos.add(pag);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return listaAcademicos;
    }

    public ArrayList MesCerrado(String mes, int ano, int sucursal) {
        ArrayList listaAcademicos = new ArrayList();
        this.configurarConexionAccess();
        this.cnn.setSentenciaSQL(" Select * from CierreMes "
                + " where  "
                + " mes='" + mes + "'"
                + " AND ano=" + ano + ""
                + " AND sucursal=" + sucursal);
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {
                CerrarMes CM = new CerrarMes();

                CM.setMes(this.cnn.getRst().getString("mes"));
                CM.setAño(this.cnn.getRst().getInt("ano"));
                CM.setEstado(this.cnn.getRst().getBoolean("estado"));
                CM.setRealizadoPor(this.cnn.getRst().getString("realizadoPor"));
                CM.setSucursal(this.cnn.getRst().getString("sucursal"));
                CM.setCerradoEl(this.cnn.getRst().getString("cerradoEl"));
                CM.setPorsentaje(this.cnn.getRst().getString("porsentaje"));
                CM.setRetencion(this.cnn.getRst().getString("retencion"));

                listaAcademicos.add(CM);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return listaAcademicos;
    }

    public int AñoCerrado(String año, String sucursal) {
        int cerrar = 0;
        this.configurarConexionAccess();
        this.cnn.setSentenciaSQL(" Select count(*) as suma from CierreMes "
                + " where  "
                + " ano=" + año
                + " AND sucursal=" + sucursal);
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {
                cerrar = this.cnn.getRst().getInt("suma");
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return cerrar;
    }

    public boolean Cerrado(String mes, int ano, String sucursal) throws IOException {
        boolean cerrar = false;
        this.configurarConexionAccess();
        this.cnn.setSentenciaSQL(" Select * from CierreMes "
                + " where  "
                + " mes like '%" + mes + "%'"
                + " AND ano=" + ano + ""
                + " AND sucursal=" + sucursal);
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {
                cerrar = true;
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return cerrar;
    }

    public ArrayList getBuscarPagoGe(String Fecha, String sucursal) {
        ArrayList listar = new ArrayList();
        this.configurarConexionAccess();
        this.cnn.setSentenciaSQL(" Select Doc_rut,SUM(Liquidacion) as a,SUM(bono) as b,SUM(rayosD) as c,SUM(laboratorio) as d from pago WHERE (fecha Between #" + Fecha.substring(0, 7) + "/01# and #"
                + Fecha + "#) AND COD_SUCURSAL=" + sucursal + " GROUP BY Doc_rut");
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {
                Pago pag = new Pago();

                pag.setDoc_rut(this.cnn.getRst().getString("Doc_rut"));
                pag.setLiquidacion(this.cnn.getRst().getInt("a"));
                pag.setBono(this.cnn.getRst().getInt("b"));
                pag.setRayosDarsalud(this.cnn.getRst().getInt("c"));
                pag.setLaboratorio(this.cnn.getRst().getInt("d"));

                listar.add(pag);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return listar;
    }

    public ArrayList getListarPd_id(String pd_id) throws IOException {
        ArrayList listaAcademicos = new ArrayList();
        this.configurarConexionAccess();

        this.cnn.setSentenciaSQL(" Select * from pago where pd_id=" + pd_id);
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {
                Pago pag = new Pago();

                pag.setPd_id(this.cnn.getRst().getInt("pd_id"));
                pag.setNumero_presupuesto(this.cnn.getRst().getInt("Numero_presupuesto"));
                pag.setDoc_rut(this.cnn.getRst().getString("Doc_rut"));
                pag.setPaciente_rut(this.cnn.getRst().getString("Paciente_rut"));
                pag.setPag_num_boleta(this.cnn.getRst().getInt("pag_num_boleta"));
                pag.setLiquidacion(this.cnn.getRst().getInt("Liquidacion"));
                pag.setLaboratorio(this.cnn.getRst().getInt("Laboratorio"));
                pag.setBono(this.cnn.getRst().getInt("bono"));
                pag.setRayosDarsalud(this.cnn.getRst().getInt("rayosD"));
                pag.setFecha(this.cnn.getRst().getString("fecha"));
                pag.setGuardadoEl(this.cnn.getRst().getString("guardadoEl"));
                pag.setDetalle(this.cnn.getRst().getString("Detalle"));
                pag.setCOD_SUCURSAL(this.cnn.getRst().getString("COD_SUCURSAL"));
                pag.setIngresoPor(this.cnn.getRst().getString("IngresoPor"));
                pag.setValorPrestacion(this.cnn.getRst().getInt("ValorPrestacion"));

                //Agregar Academico a la Coleccion
                listaAcademicos.add(pag);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return listaAcademicos;
    }
      public boolean eliminar(String user) {
        boolean x=false;
        this.configurarConexionAccess();
        this.cnn.setSentenciaSQL(" SELECT * from usuarios where usuario like '" + user + "' and eliminar=true");
        this.cnn.setEsSelect(true);
        this.cnn.conectar();
        try {
            //Rutina para Accesar los datos de la Tabla, con el ResultSet
            while (this.cnn.getRst().next()) {
              x=true;
            }
        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Cerrar la Conexion
        this.cnn.cerrarConexion();
        return x;
    }
}
